<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // // ====================================
    // for (let i = 0; i < 2; i++) {
    //   setTimeout(function () {
    //     console.log(i)  // 0 1
    //   }, 1000)
    // }
    // for (var i = 0; i < 2; i++) {
    //   setTimeout(function () {
    //     console.log(i)  // 2 2
    //   }, 1000)
    // }
    // // ====================================


    // let obj = {
    //   myVar: 'foo',

    //   myFunc: function () {
    //     console.log(this.myVar)
    //     // 改变this指向👇
    //     // ==========1. 箭头函数=========
    //     // setTimeout(() => {
    //     //   console.log(this.myVar)
    //     // }, 1000)
    //     // =========2. bind方法==========
    //     setTimeout(function() {
    //       console.log(this.myVar)
    //     }.bind(this), 1000)
    //     // ===================
    //   }
    // }
    // obj.myFunc() // foo ... then... foo


    // ====================================
    // 闭包
    function add() {
      let n = 0
      return function () {
        console.log(n++)
      }
    }
    let _add = add()
    _add()
    _add()
    _add()
    _add()
    // ====================================
  </script>
</body>

</html>